package threading;

// ReentrantLock

import java.util.concurrent.locks.ReentrantLock;

public class Demo2 {
    public static void main(String[] args) {
        // 传入参数是true就是公平锁，默认是非公平锁
        ReentrantLock locker = new ReentrantLock(true);

        // 加锁
        locker.lock();

        // 解锁
        locker.unlock();

        // 如果在lock() 和 unlock() 之间有return或者是有异常，就可能执行不到unlock了

        // 一般写为：
        try {
            locker.lock();
            // ...
        } finally {
            locker.unlock();
        }
        // 此时即使中间return或异常也可以执行unlock

    }
}
